$asset-icons: (
    'animation': '\E213',
    'audio': '\E210',
    'cubemap': '\E220',
    'container': '\E410',
    'folder': '\E139',
    'bundle': '\E410',
    'json': '\E207',
    'material': '\E195',
    'model': '\E188',
    'scene': '\E188',
    'script': '\E392',
    'sprite': '\E413',
    'template': '\E411',
    'texture': '\E201',
    'textureatlas': '\E201',
    'text': '\E209',
    'html': '\E205',
    'css': '\E206',
    'render': '\E190',
    'shader': '\E202',
    'binary': '\E299',
    'font': '\E406',
    'wasm': '\E392',
    'gsplat': '\E299',
);

.asset-icon-prefix {
    @each $name, $glyph in $asset-icons {
        &.type-#{$name}:before {
            content: $glyph;
        }
    }
}

.asset-icon-postfix {
    @each $name, $glyph in $asset-icons {
        &.type-#{$name}:after {
            content: $glyph;
        }
    }
}

$component-icons: (
    'anim': '\E198',
    'animation': '\E198',
    'audiolistener': '\E196',
    'audiosource': '\E197',
    'button': '\E405',
    'camera': '\E212',
    'collision': '\E187',
    'element': '\E378',
    'layoutchild': '\E407',
    'layoutgroup': '\E143',
    'light': '\E194',
    'model': '\E188',
    'particlesystem': '\E199',
    'rigidbody': '\E189',
    'render': '\E190',
    'screen': '\E403',
    'script': '\E236',
    'scrollbar': '\E409',
    'scrollview': '\E408',
    'sound': '\E197',
    'sprite': '\E413',
    'gsplat': '\E217'
);

.component-icon-prefix {
    @each $name, $glyph in $component-icons {
        &.type-#{$name}:before {
            content: $glyph;
        }
    }
}

.component-icon-postfix {
    @each $name, $glyph in $component-icons {
        &.type-#{$name}:after {
            content: $glyph;
        }
    }
}
